/*!
 * \file set_relation_visitor_base_test.cc
 *
 * \brief Set and Relation Visitor framework tests
 *
 * \date Started: 6/8/2010
 * \date Last Modified: 7/6/2010
 * \authors Alan LaMielle
 * \authors Ian Craig
 */

#include <iegenlib/iegenlib.h>

#include <gtest/gtest.h>
#include <stack>
using std::stack;
#include <utility>
using std::pair;
using std::make_pair;
#include <iostream>
using std::cout;
using std::endl;

using iegenlib::SymbolTable;
using iegenlib::VisitorTester;

TEST(SRVisitorFramework, PartialTraversals){
  set<string> varTuple;
  varTuple.insert("var1");
  varTuple.insert("var2");
  varTuple.insert("var3");
  set<string> symbolics;
  symbolics.insert("sym1");
  symbolics.insert("sym2");
  symbolics.insert("sym3");
  set<string> exists;
  exists.insert("exists1");
  exists.insert("exists2");
  exists.insert("exists3");
  SymbolTable ST(&varTuple, &symbolics, &exists, 3);
  VisitorTester vt;
  ST.apply(&vt);
  stack<string> nodeStack = vt.getNodeStack();
// Should be placed in debug
//  while(!nodeStack.empty()){
//    cout << nodeStack.top() << endl;
//    nodeStack.pop();
//  }
}
